//@file:JvmName("Strings")

package org.jaaksi.kottlindemo.test
fun sayHello() {
  println("Hello $nameD")
}

// const 只允许在top-level级别和object中声明
// const val 可见性为public final static，可以直接访问。
//val 可见性为private final static，并且val 会生成方法getNormalObject()，通过方法调用访问
const val nameD:String = "Denny"

fun String.firstChar() :Char{
  return this[0]
}

fun main(args: Array<String>) {
  println("Denny".firstChar())
}

fun isOdd(x: Int) = x % 2 != 0

// 可调用引用
fun test(){
  val numbers = listOf(1, 2, 3)
  println(numbers.filter(::isOdd)) // 这里 ::isOdd 是函数类型 (Int) -> Boolean 的一个值。
}

//@Throws(Exception::class)
//fun throwException() {
//  throw Exception("hahaha")
//}